JUnit 5 ile Java Birim Testi Yazma (Maven Örneği)

Bu rehberde JUnit 5 kullanarak Java projelerinde birim testlerin nasıl yazıldığını, Maven bağımlılığı ekleme ve örnek bir test sınıfı üzerinden adım adım anlatıyoruz.

Kısa özet: JUnit, Java projelerinde test otomasyonu sağlayan popüler bir test framework’üdür. Bu yazıda @Test, @BeforeEach ve assertEquals kullanarak basit bir DAO test senaryosu oluşturacağız.

Java backend geliştirme öğrenmek istiyorsanız Spring Boot CRUD örnekleri yazımıza da göz atabilirsiniz.


JUnit Nedir?

JUnit, Java projelerinde otomatik testler yazmak için kullanılan en popüler test frameworklerinden biridir. Manuel testlerde geliştiriciler uygulamayı elle test ederken, JUnit ile bu işlemler otomatik ve tekrar edilebilir hale gelir.

JUnit sayesinde uygulamanızdaki fonksiyonların doğru çalışıp çalışmadığını test edebilir ve hataları erken aşamada tespit edebilirsiniz.

JUnit içerisinde en sık kullanılan anotasyonlardan bazıları şunlardır:

  • @Test → Test metodunu belirtir
  • @BeforeEach → Her testten önce çalışır
  • @AfterEach → Test sonrası çalışır
  • Assertions → Beklenen sonuçları kontrol eder

JUnit 5 Maven Bağımlılığı

Projenizde Maven kullanıyorsanız pom.xml dosyanıza aşağıdaki bağımlılığı eklemeniz gerekir.

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.6.0</version>
    <scope>test</scope>
</dependency>

Alternatif olarak JUnit jar dosyasını manuel olarak indirip projenizin lib klasörüne ekleyebilirsiniz.


JUnit Test Örneği

Aşağıdaki örnekte MalzemeDao sınıfı için basit bir veritabanı kayıt testi oluşturulmuştur.

MalzemeDaoTest.java


import static org.junit.Assert.assertEquals;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import dao.MalzemeDao;
import entities.Malzeme;

import java.sql.SQLException;

class MalzemeDaoTest {

    MalzemeDao malzemeDao;

    @BeforeEach
    void setUp() {
        malzemeDao = new MalzemeDao();
    }

    @Test
    public void testInsertKayit() throws SQLException {

        Malzeme data = new Malzeme();
        data.setAciklama("Malzeme açıklama");
        data.setAdet(2);
        data.setDurum(0);
        data.setGarantiSuresi("2022/05/30");
        data.setId(3);
        data.setMalzeme_adi("Malzeme Adi");
        data.setMarka("Apple marka");

        boolean beklenen = true;

        assertEquals(beklenen, malzemeDao.insertKayit(data));
    }
}

DAO Sınıfı Örneği

Test edilen DAO metodunun örnek implementasyonu aşağıdaki gibidir:


private String INSERT_MALZEME_SQL =
"INSERT INTO malzeme.malzeme (malzeme_adi, durumu, aciklama, adet, marka, garanti_suresi) VALUES(?, ?, ?, ?, ?, ?);";


public boolean insertKayit(Malzeme malzeme) throws SQLException {

    try {

        Connection connection = ConnectDb.baglanDB();

        PreparedStatement ps =
        connection.prepareStatement(INSERT_MALZEME_SQL);

        ps.setString(1, malzeme.getMalzeme_adi());
        ps.setInt(2, malzeme.getDurum());
        ps.setString(3, malzeme.getAciklama());
        ps.setInt(4, malzeme.getAdet());
        ps.setString(5, malzeme.getMarka());
        ps.setString(6, malzeme.getGarantiSuresi());

        ps.executeUpdate();

        return true;

    } catch (SQLException e) {

        e.printStackTrace();
    }

    return false;
}

JUnit Testi Nasıl Çalıştırılır?

IDE üzerinden test çalıştırmak oldukça kolaydır.

Eclipse veya IntelliJ IDEA kullanıyorsanız aşağıdaki adımları izleyebilirsiniz:


Run → Run As → JUnit Test

Test başarıyla çalıştığında IDE içerisinde yeşil bar görünecektir.

İpucu: Eğer test başarısız olursa kırmızı bar görünür ve hangi satırda hata oluştuğu detaylı olarak gösterilir.

Sık Sorulan Sorular

JUnit neden kullanılır?
JUnit, Java projelerinde otomatik test yazmayı sağlar ve uygulamanın hatalarını erken tespit etmeye yardımcı olur.
JUnit ile hangi test türleri yazılabilir?
Birim testleri (Unit Test), entegrasyon testleri ve bazı durumlarda API testleri yazılabilir.
JUnit 4 ile JUnit 5 arasındaki fark nedir?
JUnit 5 daha modern bir API, daha iyi modüler yapı ve gelişmiş test özellikleri sunar.

Sonuç

Bu yazıda JUnit 5 kullanarak Java projelerinde birim testlerin nasıl yazıldığını örnek bir DAO sınıfı üzerinden inceledik.

JUnit testleri sayesinde kod kalitesi artar, hatalar erken fark edilir ve uygulamanızın güvenilirliği önemli ölçüde yükselir.

Daha fazla Java içeriği için latestsoftwaredevelopers.com adresini ziyaret edebilirsiniz.

Kodların tamamına erişmek için: GitLab Projesi

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Java ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *